<template>
	<view class="login">
		<view class="content">
			<!-- 头部logo -->
			<view class="header">
				<image :src="logoImage"></image>
			</view>
			<!-- 主体表单 -->
			<view class="main">
				<wInput
					v-model="phoneData"
					type="text"
					maxlength="11"
					placeholder="用户名/电话"
				></wInput>
				<wInput
					v-model="passData"
					type="password"
					maxlength="11"
					placeholder="密码"
				></wInput>
			</view>
			<wButton 
				text="登 录"
				:rotate="isRotate" 
				@click.native="startLogin()"
			></wButton>
			
			<!-- 其他登录 -->
			<view class="other_login cuIcon">
				<view class="login_icon">
					<view class="cuIcon-weixin" @tap="login_weixin"></view>
				</view>
				<view class="login_icon">
					<view class="cuIcon-weibo" @tap="login_weibo"></view>
				</view>
				<view class="login_icon">
					<view class="cuIcon-github" @tap="login_github"></view>
				</view>
			</view>
			
			<!-- 底部信息 -->
			<view class="footer">
				<navigator url="forget" open-type="navigate">找回密码</navigator>
				<text>|</text>
				<navigator url="register" open-type="navigate">注册账号</navigator>
			</view>
		</view>
	</view>
</template>

<script>
	var _this;
	import wInput from '@/components/watch-login/watch-input.vue' //input
	import wButton from '@/components/watch-login/watch-button.vue' //button
	import userApi from '@/api/mine/user.js'
	//把一些经常用的常量字符串保存到统一文件 避免在多个文件都调用的时候 手动写错
	import constantFile from '@/common/constant.js'
	import addressApi from '@/api/mine/address.js'
	export default {
		data() {
			return {
				//logo图片 base64  不需要 vue require引入图片资源
				logoImage: '../../../static/icons/leju-logo.png',
				phoneData:'ding', //用户/电话
				passData:'123456', //密码
				isRotate: false, //是否加载旋转
			};
		},
		components:{
			wInput,
			wButton,
		},
		mounted() {
			_this= this;
			//this.isLogin();
		},
		methods: {
			isLogin(){
				//判断缓存中是否登录过，直接登录
				// try {
				// 	const value = uni.getStorageSync('setUserData');
				// 	if (value) {
				// 		//有登录信息
				// 		console.log("已登录用户：",value);
				// 		_this.$store.dispatch("setUserData",value); //存入状态
				// 		uni.reLaunch({
				// 			url: '../../../pages/index',
				// 		});
				// 	}
				// } catch (e) {
				// 	// error
				// }
			},
		    async startLogin(){
				//登录
				if(this.isRotate){
					//判断是否加载中，避免重复点击请求
					return false;
				}
				if (this.phoneData.length == "") {
				     uni.showToast({
				        icon: 'none',
						position: 'bottom',
				        title: '用户名不能为空'
				    });
				    return;
				}
		        if (this.passData.length < 5) {
		            uni.showToast({
		                icon: 'none',
						position: 'bottom',
		                title: '密码不正确'
		            });
		            return;
		        }
				
				//锁 防止重复提交  3s内 智能点击一次
				_this.isRotate=true
				setTimeout(function(){
					_this.isRotate=false
				},3000)
				uni.showLoading({
					title: '登录中'
				});
				// await 避免写回调 把异步代码变同步
				var res = await userApi.doLogin({
					username: this.phoneData,
					password: this.passData
				});
				console.log(res);
				uni.hideLoading();
				// 登陆成功,跳转个人中心
				if(res.code == 'S'){
					// 存储到localStorage
					// 记录登陆状态    commit一个方法 让vuex自己处理
					// 同步获取当前用户的默认地址
					var addressRes = await addressApi.addressList({
						userId: res.data.id
					});
					var addressList = addressRes.data;
					// 选择默认的存入ls  filter的结果还是数组 
					var addressOne = addressList.filter(item=>(item.isUse == '1'));
					if(addressOne.length==1){
						//存入ls
						uni.setStorageSync('leju-address',addressOne[0]);
						// 没有默认结果
					}else{
						uni.removeStorageSync('leju-address');
					}
					
					this.$store.commit('user/SET_USER_INFO',res.data);
					uni.reLaunch({
					    url: '../index'
					});
				}else{
					// 提示登陆失败
					uni.showToast({
						image: '../../../static/icons/fail.png', // 本地自定义图路径
						title:'登陆失败!',
						duration:2000
					})
				}
				
		    }
			,
			login_weixin() {
				//微信登录
				uni.showToast({
					icon: 'none',
					position: 'bottom',
					title: '...'
				});
			},
			login_weibo() {
				//微博登录
				uni.showToast({
					icon: 'none',
					position: 'bottom',
					title: '...'
				});
			},
			login_github() {
				//github登录
				uni.showToast({
					icon: 'none',
					position: 'bottom',
					title: '...'
				});
			}
		}
	}
</script>

<style>
	@import url("../../../components/watch-login/css/icon.css");
	@import url("./css/main.css");
</style>
